"""
find() find_all() select()
1、查找标签
2、查找标签的内容
3、查找某标签的属性值
4、查找某标签内的标签
"""
import requests
from bs4 import BeautifulSoup

url = 'https://www.baidu.com/'

h = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}

response = requests.get(url, headers=h)
html = response.content.decode()
# 构造bs4对象
soup = BeautifulSoup(html, 'lxml')
# 1、查找标签：查找div标签，且该标签的类名为title-text c-font-medium c-color-t
# 注意：属性是字典结构（key：value）
r1 = soup.find('div', {'class': 'title-text c-font-medium c-color-t'})
print(r1)
# 2、查找标签的文本内容： text string
r2 = soup.find('div', {'class': 'title-text c-font-medium c-color-t'}).string
print(r2)

# 3、查找某标签的属性值
# 获取百度热榜的6条内容和详细url
r3 = soup.find_all('li', {'class': 'hotsearch-item'})
# 将解析出的内容保存在列表中
list_data = []
for e in r3:
    # e 是每一个li
    # 获取文本内容，文本内容是li中的第2个span
    name = e.select('span')[1].string
    # 获取url，url是li中a标签的href
    url = e.find('a')['href']
    # print(url)
    # 将文本内容和url 构造成字典
    data = {'标题': name, '详情链接': url}
    # 将字典保存在列表
    list_data.append(data)
# 将列表写入文件
with open('baidu.txt', 'w', encoding='utf-8') as f:
    # 文件写入，参数是str
    f.write(list_data.__str__())
